package com.yeung.swordoffer;


import java.util.Stack;

/**
 * 定义栈的数据结构，请在该类型中实现一个能够得到栈中所含最小元素的min函数（时间复杂度应为O（1））。
 */
public class 创建min函数的栈 {
    Stack<Integer> stack = new Stack<>();

    public void push(int node) {
        stack.push(node);
    }

    public void pop() {
        stack.pop();
    }

    public int top() {
        return stack.lastElement();
    }

    public int min() {
        final int[] minV = {Integer.MAX_VALUE};
        stack.iterator().forEachRemaining(val -> {
            if (val < minV[0])
                minV[0] = val;
        });
        return minV[0];
    }

}
